Distributed systems have become more complex in today's ever-expanding global computing environment. Distributed systems provide a collection of independent nodes that process tasks in such a way that they appear transparent to the user so that it appears to the user that all the processing is performed on one local machine. These systems present characteristics like distribution, failover tasks, switchover tasks, etc that must be measured. As a consequence, traditional tools for application profiling and measuring system performance are inadequate for these complex systems.
Therefore, there is a need in the art of distributed systems to provide mechanisms to profile applications and measure performance of distributed systems.